#!/bin/bash

#export ENCRYPTION_KEY=Sy4Pp3P3emas4JDeQzB97VB05dpRUfaRoy2wkSzptww=
#export PRIVATE_KEY=70a336377387e0c7c93028e53d19c20c18b328df65219493d02ea26bbdd6f9a9
#export PASSWORD_KEY=8afd12d468ccc16f3b079cc8783a8ebc


SpringBoot=JARFULLPATH
BootStrapYmlFullPath=ConfigYmlFullPath

if [ "$1" = "" ];
then
    echo -e "\033[0;31m 未输入操作名 \033[0m  \033[0;34m {start|stop|restart|status} \033[0m"
    exit 1
fi


function start()
{
	count=`ps -ef |grep java|grep $SpringBoot|grep GREPNUMm|grep -v grep|wc -l`
	if [ $count != 0 ];then
		echo "$SpringBoot is running..."
	else
		sudo nohup java -jar -Xms64m -Xmx1024m $SpringBoot --spring.cloud.bootstrap.location=$BootStrapYmlFullPath  > nohup.out 2>&1 &
                for i in {1..3}
                do
                        sleep 1
                        count=`ps -ef |grep java|grep $SpringBoot|grep GREPNUMm|grep -v grep|wc -l`
                        if [ $count == 0 ];then
                            echo "Start Failed..."
                            set -e 
                            exit 1
                            break
                        fi
                done
                if [ $count != 0 ];then
                        echo "Start $SpringBoot success..."
                fi
	fi
}

function stop()
{
	echo "Stop $SpringBoot"
	boot_id=`ps -ef |grep java|grep $SpringBoot|grep GREPNUMm|grep -v grep|awk '{print $2}'`
	count=`ps -ef |grep java|grep $SpringBoot|grep GREPNUMm|grep -v grep|wc -l`

	if [ $count != 0 ];then
	    sudo -n kill $boot_id
    	count=`ps -ef |grep java|grep $SpringBoot|grep GREPNUMm|grep -v grep|wc -l`

		boot_id=`ps -ef |grep java|grep $SpringBoot|grep GREPNUMm|grep -v grep|awk '{print $2}'`
		sudo -n kill -9 $boot_id
	fi
}

function restart()
{
	stop
	sleep 2
	start
}

function status()
{
    count=`ps -ef |grep java|grep $SpringBoot|grep GREPNUMm|grep -v grep|wc -l`
    if [ $count != 0 ];then
        echo "$SpringBoot is running..."
    else
        echo "$SpringBoot is not running..."
    fi
}

case $1 in
	start)
	start;;
	stop)
	stop;;
	restart)
	restart;;
	status)
	status;;
	*)

	echo -e "\033[0;31m Usage: \033[0m  \033[0;34m sh  $0  {start|stop|restart|status}  {SpringBootJarName} \033[0m
\033[0;31m Example: \033[0m
	  \033[0;33m sh  $0  start esmart-test.jar \033[0m"
esac

